package sv.ues.fia.fragmentcontrol;


import java.util.ArrayList;
import java.util.List;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;
import sv.ues.fia.R;
import sv.ues.fia.bdcontrol.ControlBDHelper;
import sv.ues.fia.clases.SearchListItem;
import sv.ues.fia.clases.SearchListItemAdapter;
import sv.ues.fia.entity.Etapa;

public class EtapaFragment extends Fragment {

	public int currentPage;
	/** DECLARAR AQUI LOS OBJETOS VIEW **/
	public ListView lvResultStages;
	public List<Etapa> listResultEtapas;
	public List<SearchListItem> listItemsResult;
	public SearchListItemAdapter adapter;
	
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);

		/** Getting the arguments to the Bundle object */
		Bundle data = getArguments();
		
		/** Getting integer data of the key current_page from the bundle */
		currentPage = data.getInt("current_page", 0);
		listItemsResult = new ArrayList<SearchListItem>();

	}

	@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState) {
		View v = null;
		/** Inflar el layout correcto para cada pagina **/
		
		/** PAGINA 1 **/
		if (currentPage == 1) {
			v = inflater.inflate(R.layout.activity_etapa_insertar, container, false);		
			
			final ControlBDHelper db = new ControlBDHelper(this.getActivity());
			
			Button btnSave = (Button) v.findViewById(R.id.btnInsertEtapa);
			final EditText edtIdEtapa = (EditText) v.findViewById(R.id.edtIdEtapa);
			final EditText edtNombreEtapa = (EditText) v.findViewById(R.id.edtNombreEtapa);
			final EditText edtPorcenEtapa= (EditText) v.findViewById(R.id.edtPorcentajeEtapa);
			
			btnSave.setOnClickListener(new OnClickListener() {
				@Override
				public void onClick(View v) {
					
					if(edtIdEtapa.getText().toString().isEmpty() || edtNombreEtapa.getText().toString().isEmpty() || edtPorcenEtapa.getText().toString().isEmpty() ){
						Toast.makeText(getActivity(), getActivity().getString(R.string.emptyForm),
								Toast.LENGTH_LONG).show();
					}else{
					
						Etapa newEtapa = new Etapa();
						newEtapa.setIdEtapa(Integer.parseInt(edtIdEtapa.getText().toString()));
						newEtapa.setNombreEtapa(edtNombreEtapa.getText().toString());
						newEtapa.setPorcentajeEtapa(Float.parseFloat(edtPorcenEtapa.getText().toString()));
						
						db.abrir();
						Toast.makeText(getActivity(), db.insertarEtapa(newEtapa),
								Toast.LENGTH_LONG).show();
						db.cerrar();
					
					}
					
				}
				
			});
			
		} 
		
		/** PAGINA 2 **/
		else if (currentPage == 2)  {
			
			final ControlBDHelper db = new ControlBDHelper(getActivity());
			v = inflater.inflate(R.layout.activity_etapa_buscar, container, false);	
			
			lvResultStages = (ListView) v.findViewById(R.id.ListResultStage);
			
			final EditText edtIdEtapa = (EditText) v.findViewById(R.id.edtIdEtapa);
			final EditText edtNombreEtapa = (EditText) v.findViewById(R.id.edtNombreEtapa);
			ListView search = (ListView) v.findViewById(R.id.listOptionSearch);
			
			/** LISTENER DEL BOTON BUSCAR **/
			search.setOnItemClickListener(new OnItemClickListener() {
				@Override
				public void onItemClick(AdapterView<?> arg0, View arg1,
						int arg2, long arg3) {
					
					/** CONSULTAR LISTADO DE ETAPAS SEGUN ID O NOMBRE **/
					
					db.abrir();					
					listResultEtapas= db.consultarEtapa(edtIdEtapa.getText().toString(), edtNombreEtapa.getText().toString());					
					db.cerrar();
				
					/** VACIAR RESULTADOS ANTES DE AGREGAR LOS NUEVOS **/
					listItemsResult.clear();
					
					/** LLENAR OTRA LISTA SOLO PARA AGREGARLO AL LISTVIEW **/
					for(Etapa x: listResultEtapas){
						
						SearchListItem item = new SearchListItem();
						
						// Se le asigna un TITULO 
						item.setTitle(getActivity().getString(R.string.idEtapa)+" "+ String.valueOf(x.getIdEtapa()));
						
						// Se le asigna un SUBTITULO
						item.setSubTitle(getActivity().getString(R.string.nombreEtapaForm) +" "+x.getNombreEtapa());
						listItemsResult.add(item);						
					}
					
					adapter.notifyDataSetChanged();	
					
				}
	        	
			});
			
			/** SE CREA EL ADAPTER PERSONALIZADO PARA EL LISTVIEW **/
			adapter = new SearchListItemAdapter(this.getActivity(),listItemsResult);
			lvResultStages.setAdapter(adapter);

			this.getActivity().registerForContextMenu(lvResultStages);

		}
		return v;
	}
			
}
